<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Changes from 2.4 to 2.6: GMime 3.0 Reference Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="index.html" title="GMime 3.0 Reference Manual">
<link rel="up" href="gmime.html" title="Part I. GMime Overview">
<link rel="prev" href="gmime-changes-2-4.html" title="Changes from 2.2 to 2.4">
<link rel="next" href="gmime-changes-3-0.html" title="Changes from 2.6 to 3.0">
<meta name="generator" content="GTK-Doc V1.32 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts"></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="gmime.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="gmime-changes-2-4.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="gmime-changes-3-0.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="gmime-changes-2-6"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle">Changes from 2.4 to 2.6</span></h2>
<p>Changes from 2.4 to 2.6 — Changes made between version 2.4 and version 2.6</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="id-1.2.8.3"></a><h2>Changes from 2.4 to 2.6</h2>
<p>After releasing GMime 2.4, it was discovered that
g_mime_stream_length() still returned ssize_t which, on 32bit systems,
meant that the function was useless if the actual stream was larger
than 2GB (which could happen if GMime was built with large file
support).</p>
<p>As I fixed this, I also found some API inconsistencies which I felt I
might as well fix up since I had to break API/ABI compatibility with
2.4 anyway.</p>
<p>Most notable in GMime 2.6 is the lack of GMimeSession which has been
dropped in favor of a much simpler callback
mechanism. GMimeCipherContexts constructors now take a
password_request callback function rather than forcing you to subclass
GMimeSession to get this functionality.</p>
<p>Other API changes include:</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem"><p>GMimeBestEncoding has been renamed to
      GMimeEncodingConstraint</p></li>
<li class="listitem"><p>GMimeSignatureValidity has been dropped in favor
      of GMimeSignatureList which is simply a collection of
      signatures.
      </p></li>
<li class="listitem"><p>GMimeSigner has been replaced by GMimeSignature
      and GMimeCertificate which added a number of new fields and
      accessors making it much more complete.
      </p></li>
<li class="listitem"><p>GMimeCipherContext has been renamed to
      GMimeCryptoContext and the method names for this class have also
      been renamed in a similar fashion.
      </p></li>
<li class="listitem"><p><code class="function">g_mime_crypto_context_encrypt()</code>
      now takes a digest algorithm argument which is used when the
      'sign' argument is TRUE.
      </p></li>
<li class="listitem"><p><code class="function">g_mime_multipart_encrypted_encrypt()</code>
      also now takes a digest algorithm argument which it passes along
      to <code class="function">g_mime_crypto_context_encrypt()</code>.
      </p></li>
<li class="listitem"><p><code class="function">g_mime_crypto_context_decrypt()</code>
      now returns a GMimeDecryptResult which contains a list of
      signatures (if signed), a list of recipients that the stream had
      been encrypted to, and also the cipher and digest algorithms
      used.
      </p></li>
<li class="listitem"><p><code class="function">g_mime_multipart_encrypted_decrypt()</code>
      no longer caches the decrypted part and also now takes a
      GMimeSignatureList** output argument which it sets in place of
      having to call
      <code class="function">g_mime_multipart_encrypted_get_signature_validity()</code>
      afterward.
      </p></li>
</ul></div>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.32</div>
</body>
</html>